﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace QuanLyKhachHang.Utilities
{
    public class DoanhThuKhachHang
    {
        public int MaKH { get; set; }
        public long TongDoanhThu { get; set; }
        public long SoTienChi { get; set; }
    }

    public static class Utils
    {
        public static bool IsNumeric(string str)
        {
            bool isNumeric = true;
            try
            {
                int.Parse(str);
                isNumeric = true;
            }
            catch
            {
                isNumeric = false;
            }
            return isNumeric;
        }

        public static string GetTenDonVi(DataTable _table, string madonvi)
        {
            string tendonvi = "";
            for (int i = 0; i < _table.Rows.Count; i++)
            {
                DataRow row = _table.Rows[i];
                if (row["MADONVI"].ToString().Trim().ToUpper() == madonvi.Trim().ToUpper())
                {
                    tendonvi = row["TENDONVI"].ToString();
                    break;
                }
            }
            return tendonvi;
        }

        public static string GetMaDonVi(DataTable _table, string tendonvi)
        {
            string madonvi = "";
            for (int i = 0; i < _table.Rows.Count; i++)
            {
                DataRow row = _table.Rows[i];
                if (row["TENDONVI"].ToString().Trim().ToUpper() == tendonvi.Trim().ToUpper())
                {
                    madonvi = row["MADONVI"].ToString();
                    break;
                }
            }
            return madonvi;
        }

        public static DataRow CheckingItemIsExist(DataTable _table, int makh, int thang, int nam)
        {
            for (int i = 0; i < _table.Rows.Count; i++)
            {
                DataRow row = _table.Rows[i];
                if (int.Parse(row["MAKH"].ToString().Trim()) == makh &&
                    int.Parse(row["THANG"].ToString().Trim()) == thang &&
                    int.Parse(row["NAM"].ToString().Trim()) == nam)
                {
                    return row;
                }
            }
            return null;
        }

        public static bool ValidateNgayThang(string ngayThang, ref int thang, ref int nam, ref string errorText)
        {
            errorText = "";
            bool isValid = true;
            ngayThang = ngayThang.ToUpper();
            var newngaythang = ngayThang.Replace("THÁNG", "");
            newngaythang = newngaythang.Replace("NĂM", "");

            string[] compNgayThang = newngaythang.Trim().Split(new char[] { ' ' });

            if (compNgayThang[0] == "" || !IsNumeric(compNgayThang[0]) ||
                compNgayThang[compNgayThang.Length - 1] == "" || !IsNumeric(compNgayThang[compNgayThang.Length - 1]))
            {
                isValid = false;
            }

            if (!isValid)
            {
                errorText = "Dòng thứ 4 trong file import phải có dạng: Tháng x Năm y, voi x, y là số";
                return isValid;
            }

            thang = int.Parse(compNgayThang[0]);
            nam = int.Parse(compNgayThang[compNgayThang.Length - 1]);
            return isValid;
        }

        public static bool ValidateImportFile(DataTable _tbl, ref string errorText)
        {
            return true;
        }

        private static readonly string[] VietnameseSigns = new string[]{
 
            "aAeEoOuUiIdDyY",
 
            "áàạảãâấầậẩẫăắằặẳẵ",
 
            "ÁÀẠẢÃÂẤẦẬẨẪĂẮẰẶẲẴ",
 
            "éèẹẻẽêếềệểễ",
 
            "ÉÈẸẺẼÊẾỀỆỂỄ",
 
            "óòọỏõôốồộổỗơớờợởỡ",
 
            "ÓÒỌỎÕÔỐỒỘỔỖƠỚỜỢỞỠ",
 
            "úùụủũưứừựửữ",
 
            "ÚÙỤỦŨƯỨỪỰỬỮ",
 
            "íìịỉĩ",
 
            "ÍÌỊỈĨ",
 
            "đ",
 
            "Đ",
 
            "ýỳỵỷỹ",
 
            "ÝỲỴỶỸ"
        };

        public static string RemoveSign4VietnameseString(string str)
        {
            //Tiến hành thay thế , lọc bỏ dấu cho chuỗi
            for (int i = 1; i < VietnameseSigns.Length; i++)
            {
                for (int j = 0; j < VietnameseSigns[i].Length; j++)
                    str = str.Replace(VietnameseSigns[i][j], VietnameseSigns[0][i - 1]);
            }

            return str;

        }

        public static void ComparePrefix(ref string tenkhbodaucu, ref string tenkhbodaumoi)
        {
            for(int i=0; i<GlobalVariables.g_lstPattern.Count; i++)
            {
                if (tenkhbodaucu.Contains(GlobalVariables.g_lstPattern[i].pattern1) && tenkhbodaumoi.Contains(GlobalVariables.g_lstPattern[i].pattern2))
                {
                    tenkhbodaucu = tenkhbodaucu.Replace(GlobalVariables.g_lstPattern[i].pattern1, "");
                    tenkhbodaumoi = tenkhbodaumoi.Replace(GlobalVariables.g_lstPattern[i].pattern2, "");
                }
                else if (tenkhbodaucu.Contains(GlobalVariables.g_lstPattern[i].pattern2) && tenkhbodaumoi.Contains(GlobalVariables.g_lstPattern[i].pattern1))
                {
                    tenkhbodaucu = tenkhbodaucu.Replace(GlobalVariables.g_lstPattern[i].pattern2, "");
                    tenkhbodaumoi = tenkhbodaumoi.Replace(GlobalVariables.g_lstPattern[i].pattern1, "");
                }
            }
            tenkhbodaucu = tenkhbodaucu.Trim();
            tenkhbodaumoi = tenkhbodaumoi.Trim();
        }
    }
}
